package com.hrt.hudi.spark

import org.apache.hudi.{DataSourceReadOptions, DataSourceWriteOptions}
import org.apache.hudi.config.HoodieWriteConfig
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}

/**
 * 读取hudi的数据
 */
object ReadHudi {
  def main(args: Array[String]): Unit = {

    val session: SparkSession = SparkSession.builder().master("local")
      .config("spark.serializer","org.apache.spark.serializer.KryoSerializer")
      .appName("test").getOrCreate()

    //更新数据
    session.sparkContext.setLogLevel("Error")

    /** 全量查询 */
    val result: DataFrame = session.read.format("org.apache.hudi")
      .option(DataSourceReadOptions.QUERY_TYPE_OPT_KEY,DataSourceReadOptions.QUERY_TYPE_SNAPSHOT_OPT_VAL)
//      .load("/hudi_data/person_infos/20210709-hunan/*") // 读取指定目录的数据
      .load("/hudi_data/person_infos/*")
    result.show()

    /** 增量查询 */
//   val result: DataFrame = session.read.format("org.apache.hudi")
//  // READ_OPTIMIZED 与 INCREMENTAL查询
//  // .option(DataSourceReadOptions.QUERY_TYPE_OPT_KEY,DataSourceReadOptions.QUERY_TYPE_READ_OPTIMIZED_OPT_VAL)
//  .option(DataSourceReadOptions.QUERY_TYPE_OPT_KEY,DataSourceReadOptions.QUERY_TYPE_INCREMENTAL_OPT_VAL)
//  .option(DataSourceReadOptions.BEGIN_INSTANTTIME_OPT_KEY,"20210812215325")
//  .option(DataSourceReadOptions.END_INSTANTTIME_OPT_KEY,"20210812215556")
//  .load("/hudi_data/person_infos/*")
//   result.show()*/

}
}
